A virtual machine is a software implementation of a machine (computer) that includes its own operating system (referred to as a guest operating system) and executes application programs. A host computer allocates a certain amount of its resources to each of the virtual machines, and multiplexes its underlying hardware platform among the virtual machines. Each virtual machine is then able to use the allocated resources to execute its guest operating system and applications. The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor, or part of a host operating system. The hypervisor emulates the underlying hardware for the guest operating system, making the use of the virtual machine transparent to the guest operating system and the user of the computer.
Generally, an operating system is installed and executed on a physical machine (e.g., physical hardware rather than a virtual machine). An installer may set the configuration parameters (e.g., settings, parameters, options, configurations, etc.) of an operating system to enable the operating system to run efficiently on physical hardware, rather than a virtual machine. In addition, a guest operating system that has been installed on a virtual machine under a hypervisor may be configured with certain configuration parameters for the hypervisor. When the virtual machine is migrated from a source host machine running a first hypervisor to a target host machine running a second (e.g., different) hypervisor, the operating system will still have configuration parameters configured for the first hypervisor. This may cause operating systems to execute inefficiently and/or sub-optimally when they are installed onto virtual machines.